package com.yonyou.cyxdms.basedata.service.dto.vehiclemodel;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeQueryBeginDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeQueryBeginSerializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLocalDateTimeSerializer;
import com.yonyou.cyxdms.framework.bean.dto.base.DMSBaseDTO;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;

/**
 * 选装Page表格 - 查询DTO
 *
 * @author zhangys
 * @since 2020-2-24
 */
@ApiModel(value = "OptionQueryDTO", description = "选装Page表格 - 查询DTO")
public class OptionQueryDTO extends DMSBaseDTO implements Serializable {

	
	@ApiModelProperty(value = "品牌Id（品牌名称下拉框传递品牌Id）")
    private Long brandId;

    @ApiModelProperty(value = "车系Id（车系名称下拉框传递车系Id）")
    private Long seriesId;

    @ApiModelProperty(value = "车型Id（车系名称下拉框传递车型Id）")
    private Long modelId;
    
    @ApiModelProperty(value = "配置Id（车系名称下拉框传递配置Id）")
    private Long packageId;

    @ApiModelProperty(value = "选装Id（车系名称下拉框传递选装Id）")
    private Long optionId;

    @ApiModelProperty(value = "选装代码（模糊查询）")
    private String optionCode;

    @ApiModelProperty(value = "选装名称（模糊查询）")
    private String optionName;
    
    @ApiModelProperty(value = "数据来源")
    private Integer dataSources;

    @ApiModelProperty(value = "是否有效")
    private Integer isValid;

	@ApiModelProperty(value = "启用时间")
	@JsonDeserialize(using = JsonLocalDateTimeQueryBeginDeserializer.class)
	@JsonSerialize(using = JsonLocalDateTimeQueryBeginSerializer.class)
	private LocalDateTime startDate;

	@ApiModelProperty(value = "启用标识")
	private Integer startType;

	@ApiModelProperty(value = "选装ID列表")
	private List<Integer> optionIds;

	@ApiModelProperty(value = "车辆信息")
	@JsonProperty("vehicleInfo")
	private String vehicleInfo;

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    public Long getSeriesId() {
        return seriesId;
    }

    public void setSeriesId(Long seriesId) {
        this.seriesId = seriesId;
    }

    public Long getModelId() {
        return modelId;
    }

    public void setModelId(Long modelId) {
        this.modelId = modelId;
    }

	public Long getPackageId() {
		return packageId;
	}

	public void setPackageId(Long packageId) {
		this.packageId = packageId;
	}

	public String getOptionCode() {
		return optionCode;
	}

	public void setOptionCode(String optionCode) {
		this.optionCode = optionCode;
	}

	public String getOptionName() {
		return optionName;
	}

	public void setOptionName(String optionName) {
		this.optionName = optionName;
	}
	
	public Integer getDataSources() {
		return dataSources;
	}

	public void setDataSources(Integer dataSources) {
		this.dataSources = dataSources;
	}

	public Integer getIsValid() {
		return isValid;
	}

	public void setIsValid(Integer isValid) {
		this.isValid = isValid;
	}

	public LocalDateTime getStartDate() {
		return startDate;
	}

	public void setStartDate(LocalDateTime startDate) {
		this.startDate = startDate;
	}

	public Integer getStartType() {
		return startType;
	}

	public void setStartType(Integer startType) {
		this.startType = startType;
	}

	public List<Integer> getOptionIds() {
		return optionIds;
	}

	public void setOptionIds(List<Integer> optionIds) {
		this.optionIds = optionIds;
	}

	public String getVehicleInfo() {
		return vehicleInfo;
	}

	public void setVehicleInfo(String vehicleInfo) {
		this.vehicleInfo = vehicleInfo;
	}

	public Long getOptionId() {
		return optionId;
	}

	public void setOptionId(Long optionId) {
		this.optionId = optionId;
	}

	@Override
	public String toString() {
		return "OptionQueryDTO [brandId=" + brandId + ", seriesId=" + seriesId + ", modelId=" + modelId + ", packageId="
				+ packageId + ", optionCode=" + optionCode + ", optionName=" + optionName + ", dataSources="
				+ dataSources + ", isValid=" + isValid + ", startType=" + startType + ", startDate=" + startDate +
				", optionId=" + optionId +
				", optionIds=" + optionIds + "]";
	}

    
}
